The {@code BST} class represents an ordered symbol table of generic
    key-value pairs.
    It supports the usual <em>put</em>, <em>get</em>, <em>contains</em>,
    <em>delete</em>, <em>size</em>, and <em>is-empty</em> methods.
    It also provides ordered methods for finding the <em>minimum</em>,
   <em>maximum</em>, <em>floor</em>, <em>select</em>, <em>ceiling</em>.
    It also provides a <em>keys</em> method for iterating over all of the keys.
    A symbol table implements the <em>associative array</em> abstraction:
    when associating a value with a key that is already in the symbol table,
    the convention is to replace the old value with the new value.
    Unlike {@link java.util.Map}, this class uses the convention that
    values cannot be {@code null}—setting the
    value associated with a key to {@code null} is equivalent to deleting the key
    from the symbol table.
    <p>
    It requires that
    the key type implements the {@code Comparable} interface and calls the
    {@code compareTo()} and method to compare two keys. It does not call either
    {@code equals()} or {@code hashCode()}.
    <p>
    This implementation uses an (unbalanced) <em>binary search tree</em>.
    The <em>put</em>, <em>contains</em>, <em>remove</em>, <em>minimum</em>,
    <em>maximum</em>, <em>ceiling</em>, <em>floor</em>, <em>select</em>, and
    <em>rank</em>  operations each take &Theta;(<em>n</em>) time in the worst
    case, where <em>n</em> is the number of key-value pairs.
    The <em>size</em> and <em>is-empty</em> operations take &Theta;(1) time.
    The keys method takes &Theta;(<em>n</em>) time in the worst case.
    Construction takes &Theta;(1) time.
    <p>
    For alternative implementations of the symbol table API, see {@link ST},
    {@link BinarySearchST}, {@link SequentialSearchST}, {@link RedBlackBST},
    {@link SeparateChainingHashST}, and {@link LinearProbingHashST},
    For additional documentation, see
    <a href="https://algs4.cs.princeton.edu/32bst">Section 3.2</a> of
    <i>Algorithms, 4th Edition</i> by Robert Sedgewick and Kevin Wayne.
  
    @author Robert Sedgewick
  @author Kevin Wayne